import xml.etree.ElementTree as ET

# -------------------------AndroidManifest文件解析---------------------------------------

Andriodmanifest_file_path = "D:\\桌面\\涉诈APP\\APK测试文件\\Python解析apk\\AndroidManifest.xml"



# uses-permission - 存储应用所需权限
# get返回的是权限集合
def get_AndroidManifest_uses_permission(file_path):
    tree = ET.parse(file_path)
    root = tree.getroot()
    permissions = root.findall('uses-permission')
    permissions_names = [perm.attrib.get('{http://schemas.android.com/apk/res/android}name') for perm in permissions]
    # 返回值为    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    # 中的android.permission.ACCESS_NETWORK_STATE 集合内容
    return permissions_names


# getapk包名
def get_AndroidManifest_package(file_path):
    tree = ET.parse(file_path)
    root = tree.getroot()
    return root.attrib.get('package')

# apk版本,如果说version在第一行，则一般都是1.0版本
# 如果不在第一行就是在第一个manifest中的'versionName'中
def get_AndroidManifest_version(file_path):
    tree = ET.parse(file_path)
    root = tree.getroot()
    if root.attrib.get('versionName'):
        return root.attrib.get('versionName')
    else:
        return '1.0'








# ------------------------------------classes.dex文件解析------------------------------------------------










# ----------------------------------------其他文件解析------------------------------------------------------------